package com.xx.xunyou.service;

import com.xx.xunyou.entity.item.XunyouItemType;
import com.xx.xunyou.entity.item.vo.XunyouItemTypeTopAndSonsVo;
import com.xx.xunyou.entity.item.vo.XunyouItemTypeVo;

import java.util.List;
import java.util.Map;

/**
 * @program: xunyou-parent
 * @author: zhl
 * @create: 2019-04-16
 **/
public interface ItemTypeService {
    /**
     * 根据id查询
     * @param parentId
     * @return
     */
    XunyouItemType findByIdToManager(Integer parentId);

    /**
     * 查询条数
     * @param map
     * @return
     */
    Integer queryListCountToManager(Map<String,Object> map);

    /**
     * 查询数据
     * @param map
     * @return
     */
    List<Map> queryListToManager(Map<String,Object> map);

    /**
     * 添加
     * @param xunyouItemType
     */
    void insert(XunyouItemType xunyouItemType);


    /**
     * 删除
     */
    void deleteById(Integer typeId);

    /**
     * 恢复
     */
    void recoveryById(Integer typeId);

    /**
     * 修改
     * @param xunyouItemType
     */
    void update(XunyouItemType xunyouItemType);

    /**
     * 通过父key查询所有分类
     * @param parentKey
     * @return
     */
    List<XunyouItemType> querySonByParentKeyToManager(String parentKey);

    /**
     * 查询app端的顶上的导航栏
     * @return
     */
    List<XunyouItemTypeTopAndSonsVo> queryTopToAPPIndex();

    /**
     * 通过key查询
     * @param parentTypeKey
     * @return
     */
    XunyouItemType queryByTypeKey(String parentTypeKey);

    /**
     * 通过id查询子集
     * @param typeId
     * @return
     */
    List<XunyouItemType> querySonById(Integer typeId);

    /**
     * 根据id查询
     * @param typeId
     * @return
     */
    XunyouItemType queryById(Integer typeId);

    /**
     * 根据父key 和key查询
     * @param parentTypeKey
     * @param typeKey
     * @return
     */
    XunyouItemTypeTopAndSonsVo queryItemTypeTopAndSonsVoByTypeKey(String parentTypeKey, String typeKey);
}
